assume cs:code
data segment
 ; 0
 db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984','1985'
 db '1986','1987','1988','1989','1990','1991','1992','1993','1994','1995'
 ; 96
 dd 22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514,345980
 dd 590827,803530,1183000,1843000,2758000,3753000,4649000,5937000
 ; 192
 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
 dw 11542,14430,15257,17800
data ends

table segment
 ;         年份  收入 雇员数 人均收入
 db 21 dup ('year summ ne ?? ')
table ends

code segment
start:
   ; 21次传送
   mov cx,21
   mov bx,0 ;年份 ; 工资
   mov si,192  ; 员工数
   mov di,0 ; table段指针
   do0:

      ; 每次传送

      ; 年份
      ; 前两个字节
      mov ax,data
      mov ds,ax
      mov ax,ds:[bx]

      mov dx,table
      mov ds,dx
      mov ds:[di+0],ax
      ; 后两个字节
      mov ax,data
      mov ds,ax
      mov ax,ds:[bx+2]

      mov dx,table
      mov ds,dx
      mov ds:[di+2],ax

      ; 收入 并存在一个地方
      ; 收入低位
      mov ax,data
      mov ds,ax
      mov ax,ds:[bx+96]

      mov dx,table
      mov ds,dx
      mov ds:[di+5],ax
      ; 后两个字节
      mov ax,data
      mov ds,ax
      mov ax,ds:[bx+96+2]

      mov dx,table
      mov ds,dx
      mov ds:[di+7],ax


      ; 雇员数  并存在一个地方

      mov ax,data
      mov ds,ax
      mov ax,ds:[si]

      mov dx,table
      mov ds,dx
      mov ds:[di+10],ax
      
      ; 平均工资
      mov dx,ds:[7]
      mov ax,ds:[5]


      


      div word ptr ds:[10]


      mov ds:[di+13],ax



      add bx,4
      add si,2
      add di,16   
      
   loop do0
   
   mov ax,4c00h
   int 21h
code ends
end start

